$Description$
有 nn 件工作要分配给$n$个人做。第$i$个人做第$j$件工作产生的效益为 $c_{i,j}$。试设计一个将$n$件工作分配给$n$个人做的分配方案,使产生的总效益最大。
$Solution$
一个人只能搭配一个任务,显然应该想到二分图,由于有权值,只需在二分图上跑费用流即可
以下边$(a,b)$表示容量为a,费用为$b$的边
首先从$s$向每个人连边$(1,0)$,再从每个任务向$t$连边$(1,0)$
在每个人$i$与任务$j$之间连边$(1,c_{i,j})$
分别跑最小费用最大流和最大费用最大流即可
最大费用最大流只需把$spfa$的最短路改成最长路即可
$Code$
1 |
|